package mainshi;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author: wzp
 * @CreateTime: 2024-09-14  17:15
 * @Description: TODO
 * @Version: 1.0
 */
public class KitNum {
//    public static void main(String[] args) {
//        int[] arr=new int[500];
////        kit_sum表示每一轮淘汰的人的数量
//        int kit_sum=0;
////        表示当前轮存活的人在这一轮的号数是多少
//        int num=1;
//        int sheng=arr.length;
//        while (sheng!=1){
////            每一轮刚开始杀死的人都是0
//            kit_sum=0;
////            号数都是从1开始
//            num=1;
//            for (int i = 0; i < arr.length; i++) {
//                if(arr[i]==1){
//                    continue;
//                }
//                if(num%2==1){
//                    arr[i]=1;
//                    kit_sum++;
//                }
//                num++;
//            }
//            sheng=sheng-kit_sum;
//        }
//        int result=0;
//        for (int i = 0; i < arr.length; i++) {
//            if(arr[i]!=1){
//                result=i+1;
//            }
//        }
//        System.out.println(result);
//    }

    public static void main(String[] args) {
        int n = 500;
        System.out.println("最后存活的人的编号是: " + findLastSurvivor(n));
    }

    public static int findLastSurvivor(int n) {
        List<Integer> people=new ArrayList<>();
        for (int i = 1; i <= n; i++) {
            people.add(i);
        }
        while (people.size()!=1){
            List<Integer> newPeople=new ArrayList<>();
            for (int i = 0; i < people.size(); i++) {
                if((i+1)%2==0){
                    newPeople.add(people.get(i));
                }
            }
            people=newPeople;
        }
        return people.get(0);
    }
}
